
#ifndef  _RADIX_ARCHAISM_MODULE_H_
#define  _RADIX_ARCHAISM_MODULE_H_

#include <Archaism/Header.h>

_BeginNamespace(Radix)

class Module
{
	struct ModuleAttribute;
	_ForbidCopy(Module);
	_ForbidAssign(Module);

public:
	Module(const String& name);
	~Module();

public:
	bool load();
	void unload();
	bool available();
	const String& name() const;
	void* getSymbol(const std::string& symbolName);

private:
	ModuleAttribute* mAttribute;
};

_EndNamespace(Radix)

#endif//_RADIX_ARCHAISM_MODULE_H_
